01. 简介

为何要学习面向对象编程?

面向过程编程是大多数人首先学习的编程思路,但是和面向过程编程相比,面向对象编程具有一些优势。

  • 借助面向对象编程,你能够创建大型模块化程序,这些程序能够随时间的推移轻松扩展。
  • 面向对象编程可以向最终用户隐藏实现细节。

想想 scikit-learn pandas numpy 等 Python 软件包。它们都是使用面向对象编程构建的 Python 库。比如 scikit-learn 就是一个用面向对象编程构建的规模化、很复杂的软件包,并这么多年来,逐步增加了很多新功能和新算法。

用户在使用 scikit-learn 训练机器学习算法时,完全不需要了解算法代码。

下面是摘自 scikit-learn 网站 的一个示例:

from sklearn import svm
X = [[0, 0], [1, 1]]
y = [0, 1]
clf = svm.SVC()
clf.fit(X, y)  

scikit-learn 是如何训练 SVM 模型的?用户不需要知道,因为面向对象编程已将实现细节隐藏起来了(当然,用户是否应该了解 SVM 的工作原理则是另一回事)。